package com.aizuda.boot.modules.third.wps.domain.vo;

import com.aizuda.service.anno.LongToStringIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author hjw
 * @description 文档预览文件信息对象
 * @date 2025年06月13日 16:24
 */
@Data
@Schema
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FileInfoVo {

    @Schema(description = "文档 ID，必须与传入的file_id一致，最大长度 47", maxLength = 47)
    private String id;

    @Schema(description = "文档名称，最大长度 240，不能包含下列特殊字符：\\/|\":*?<>")
    private String name;

    @Schema(description = "文档版本号，无符号 int32 位，从 1 开始，每次保存后递增，如果已经迭代了多个版本，这里您需要返回最新的版本号")
    private Integer version;

    @Schema(description = "文档大小，单位 byte")
    @LongToStringIgnore
    private Long size;

    @Schema(description = "文档创建时间戳，单位纪元秒")
    @JsonProperty("create_time")
    @LongToStringIgnore
    private Long createTime;

    @Schema(description = "文档最后修改时间戳，单位纪元秒")
    @JsonProperty("modify_time")
    @LongToStringIgnore
    private Long modifyTime;

    @Schema(description = "文档创建者 Id")
    @JsonProperty("creator_id")
    private String creatorId;

    @Schema(description = "文档最后修改者 Id")
    @JsonProperty("modifier_id")
    private String modifierId;


}
